package Managers;

import java.util.ArrayList;

import org.apache.struts2.ServletActionContext;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import Entidades.Equipo;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.opensymphony.xwork2.ActionSupport;

public class EquiposManager extends ActionSupport{
	private MyFileManager f_m;
	private JSONArray equipos;
	private Gson gson;
	private JSONObject equiposJson = null;
	private String filePath;
	
	public EquiposManager(){
		f_m = new MyFileManager();
		gson = new GsonBuilder().disableHtmlEscaping().create();
		filePath = ServletActionContext.getServletContext().getRealPath("/");
		leerequipos();
		
	}
	
	public JSONArray obtenerEquipos (){
		return equipos;
	}
	
	private void leerequipos(){

		String equipos_string = f_m.read(filePath + getText("equipos.file_name"));
		if (equipos_string.length() > 0){
			try {
				equiposJson = (JSONObject)new JSONParser().parse(equipos_string);
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
		
		if (equiposJson == null){
		    
			// convert java object to JSON format,  
			// and returned as JSON formatted string  
			equiposJson = new JSONObject();
			
			ArrayList<Equipo> equipos_array = new ArrayList<Equipo>();
			equiposJson.put("equipos", equipos_array);
			
			String json = gson.toJson(equiposJson);
			f_m.write(json,filePath + getText("equipos.file_name"),false);
			equipos = new JSONArray();
		}else{			
			equipos = (JSONArray) equiposJson.get("equipos");
		}
		
		
	}
	
	public boolean agregarEquipo(Equipo  p){

		p.setId(equipos.size()+1);
		equiposJson = new JSONObject();
		equipos.add(gson.toJson(p));
		equiposJson.put("equipos", equipos);
		return f_m.write(gson.toJson(equiposJson),filePath + getText("equipos.file_name"),false);
	}
	
	
}
